* installing to library ‘/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages’
* installing *source* package ‘s2’ ...
** this is package ‘s2’ version ‘1.1.11’
** package ‘s2’ successfully unpacked and MD5 sums checked
** using staged installation
Found OpenSSL pkg-config cflags and libs!
Testing compiler OpenSSL configuration using PKG_CFLAGS=
** Using PKG_CONFIG_PATH=:/home/hornik/tmp/scratch/RtmpSdvOE2/R.INSTALL11287025da896e/s2/tools/pkgconfig
** Using abseil-cpp from pkg-config
Testing Abseil configuration using PKG_CFLAGS= 
Using PKG_LIBS=-labsl_flags_internal -labsl_flags_marshalling -labsl_flags_reflection -labsl_flags_private_handle_accessor -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_program_name -labsl_raw_hash_set -labsl_hashtablez_sampler -labsl_log_internal_check_op -labsl_log_internal_conditions -labsl_log_internal_message -labsl_examine_stack -labsl_log_internal_format -labsl_log_internal_nullguard -labsl_log_internal_structured_proto -labsl_log_internal_log_sink_set -labsl_log_internal_globals -labsl_log_globals -labsl_vlog_config_internal -labsl_log_internal_fnmatch -labsl_log_sink -labsl_log_entry -labsl_log_internal_proto -labsl_status -labsl_cord -labsl_cordz_info -labsl_cord_internal -labsl_hash -labsl_city -labsl_cordz_functions -labsl_exponential_biased -labsl_cordz_handle -labsl_synchronization -labsl_graphcycles_internal -labsl_kernel_timeout_internal -labsl_tracing_internal -labsl_time -labsl_civil_time -labsl_time_zone -labsl_crc_cord_state -labsl_crc32c -labsl_crc_internal -labsl_crc_cpu_detect -labsl_leak_check -labsl_stacktrace -labsl_str_format_internal -labsl_strerror -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal -labsl_demangle_rust -labsl_decode_rust_punycode -labsl_utf8_for_code_point -labsl_malloc_internal -labsl_strings -labsl_strings_internal -labsl_int128 -labsl_base -Wl,--push-state,--as-needed -latomic -Wl,--pop-state -lrt -labsl_spinlock_wait -labsl_source_location -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity -lssl -lcrypto
Using PKG_CFLAGS= 
** libs
specified C++17
using C compiler: ‘Debian clang version 22.1.8 (1+b1)’
using C++ compiler: ‘Debian clang version 22.1.8 (1+b1)’
using C++17
make[1]: Entering directory '/home/hornik/tmp/scratch/RtmpSdvOE2/R.INSTALL11287025da896e/s2/src'
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c cpp-compat.cpp -o cpp-compat.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-altrep.cpp -o s2-altrep.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-accessors.cpp -o s2-accessors.o
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-accessors.cpp:2:
In file included from ./geography-operator.h:7:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-bounds.cpp -o s2-bounds.o
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:27:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:27:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:27:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:27:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:3:
In file included from ./s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-bounds.cpp:3:
In file included from ./s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-bounds.cpp:2:
In file included from ./s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-cell.cpp -o s2-cell.o
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:9:
In file included from ./s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-cell.cpp:9:
In file included from ./s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
./s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
./s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
./s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
./s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:8:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell.cpp:12:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-cell-union.cpp -o s2-cell-union.o
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:3:
In file included from ./s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-cell-union.cpp:3:
In file included from ./s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2-cell-union.cpp:5:
In file included from ./s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:5:
In file included from ./s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:7:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:7:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:7:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:7:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:7:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:7:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:7:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
./s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
./s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
./s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
./s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:5:
In file included from ./s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
./s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:5:
In file included from ./s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
./s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:5:
In file included from ./s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:5:
In file included from ./s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:2:
In file included from ./s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-cell-union.cpp:5:
In file included from ./s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-cell-union.cpp:5:
In file included from ./s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-constructors-formatters.cpp -o s2-constructors-formatters.o
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:6:
In file included from ./s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-constructors-formatters.cpp:9:
In file included from ./geography.h:7:
In file included from ./s2geography.h:4:
In file included from ./s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-predicates.cpp -o s2-predicates.o
In file included from s2-predicates.cpp:2:
In file included from ./s2/s2boolean_operation.h:26:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-predicates.cpp:2:
In file included from ./s2/s2boolean_operation.h:26:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-transformers.cpp -o s2-transformers.o
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:24:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:24:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-transformers.cpp:2:
In file included from ./s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c init.cpp -o init.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c util.cpp -o util.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c RcppExports.cpp -o RcppExports.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-geography.cpp -o s2-geography.o
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
./s2/s2latlng.h:172:11: note: in instantiation of template class 'Vector2<double>' requested here
  172 |   R2Point coords_;
      |           ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:3:
In file included from ./s2/s2polyline.h:34:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-geography.cpp:3:
In file included from ./s2/s2polyline.h:34:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
./s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
./s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
./s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
./s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-geography.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-lnglat.cpp -o s2-lnglat.o
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
./s2/s2latlng.h:172:11: note: in instantiation of template class 'Vector2<double>' requested here
  172 |   R2Point coords_;
      |           ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/util/math/vector.h:183:17: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  183 |     return sqrt(Norm2());
      |                 ^
../src/s2/util/math/vector.h:189:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm' requested here
  189 |     T n = Norm();
      |           ^
../src/s2/s2point.h:157:44: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Normalize' requested here
  157 |   S2Point Normalize() const { return Base::Normalize(); }
      |                                            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
./s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
./s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
./s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2-lnglat.cpp:2:
In file included from ./s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
./s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
68 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2-matrix.cpp -o s2-matrix.o
In file included from s2-matrix.cpp:6:
In file included from ./s2/s2boolean_operation.h:26:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2-matrix.cpp:6:
In file included from ./s2/s2boolean_operation.h:26:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang-22 -std=gnu23 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3   -fpic  -g -O3 -Wall -pedantic -c wk-impl.c -o wk-impl.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2geography/accessors-geog.cc -o s2geography/accessors-geog.o
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors-geog.cc:2:
In file included from s2geography/accessors-geog.h:4:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2geography/accessors.cc -o s2geography/accessors.o
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/accessors.cc:2:
In file included from s2geography/accessors.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2geography/build.cc -o s2geography/build.o
In file included from s2geography/build.cc:2:
In file included from s2geography/build.h:4:
In file included from ../src/s2/s2builderutil_s2point_vector_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2geography/build.cc:2:
In file included from s2geography/build.h:4:
In file included from ../src/s2/s2builderutil_s2point_vector_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2geography/coverings.cc -o s2geography/coverings.o
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:6:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:6:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:6:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:6:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:6:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:6:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:6:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/coverings.cc:2:
In file included from s2geography/coverings.h:4:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2geography/distance.cc -o s2geography/distance.o
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/distance.cc:2:
In file included from s2geography/distance.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2geography/geography.cc -o s2geography/geography.o
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/geography.cc:2:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2geography/linear-referencing.cc -o s2geography/linear-referencing.o
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2geography/linear-referencing.cc:2:
In file included from s2geography/linear-referencing.h:4:
In file included from s2geography/geography.h:4:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2geography/predicates.cc -o s2geography/predicates.o
In file included from s2geography/predicates.cc:2:
In file included from s2geography/predicates.h:4:
In file included from ../src/s2/s2boolean_operation.h:26:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2geography/predicates.cc:2:
In file included from s2geography/predicates.h:4:
In file included from ../src/s2/s2boolean_operation.h:26:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/encoded_s2cell_id_vector.cc -o s2/encoded_s2cell_id_vector.o
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:27:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:27:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:27:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:27:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2cell_id_vector.cc:18:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
64 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/encoded_s2point_vector.cc -o s2/encoded_s2point_vector.o
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:27:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:27:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:27:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:27:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:31:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:31:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2point_vector.cc:18:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
66 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/encoded_s2shape_index.cc -o s2/encoded_s2shape_index.o
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:29:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:29:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:29:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:29:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:30:
In file included from ../src/s2/encoded_s2cell_id_vector.h:29:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/encoded_s2shape_index.h:201:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<EncodedS2ShapeIndex::Iterator>' requested here
  201 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_s2shape_index.cc:18:
In file included from ../src/s2/encoded_s2shape_index.h:32:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/encoded_s2shape_index.h:205:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<EncodedS2ShapeIndex::Iterator>' requested here
  205 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
81 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/encoded_string_vector.cc -o s2/encoded_string_vector.o
In file included from s2/encoded_string_vector.cc:18:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_string_vector.cc:18:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_string_vector.cc:18:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/encoded_string_vector.cc:18:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
4 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/id_set_lexicon.cc -o s2/id_set_lexicon.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/mutable_s2shape_index.cc -o s2/mutable_s2shape_index.o
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
s2/mutable_s2shape_index.cc:85:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
   85 | S2_DEFINE_int32(
      | ^
../src/s2/base/commandlineflags.h:33:3: note: expanded from macro 'S2_DEFINE_int32'
   33 |   ABSL_FLAG(int32, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
s2/mutable_s2shape_index.cc:104:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
  104 | S2_DEFINE_int64(
      | ^
../src/s2/base/commandlineflags.h:36:3: note: expanded from macro 'S2_DEFINE_int64'
   36 |   ABSL_FLAG(int64, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
s2/mutable_s2shape_index.cc:121:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
  121 | S2_DEFINE_double(
      | ^
../src/s2/base/commandlineflags.h:30:3: note: expanded from macro 'S2_DEFINE_double'
   30 |   ABSL_FLAG(double, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
s2/mutable_s2shape_index.cc:171:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
  171 | S2_DEFINE_double(
      | ^
../src/s2/base/commandlineflags.h:30:3: note: expanded from macro 'S2_DEFINE_double'
   30 |   ABSL_FLAG(double, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
s2/mutable_s2shape_index.cc:470:38: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
  470 |       pending_additions_begin_(absl::exchange(b.pending_additions_begin_, 0)),
      |                                      ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/mutable_s2shape_index.cc:483:36: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
  483 |   pending_additions_begin_ = absl::exchange(b.pending_additions_begin_, 0);
      |                                    ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/mutable_s2shape_index.cc:897:12: warning: variable 'i' set but not used [-Wunused-but-set-variable]
  897 |   for (int i = 0; num_edges_left > 0; ++i) {
      |            ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/mutable_s2shape_index.cc:18:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
110 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/r2rect.cc -o s2/r2rect.o
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/r2rect.cc:18:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
35 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s1angle.cc -o s2/s1angle.o
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2latlng.h:172:11: note: in instantiation of template class 'Vector2<double>' requested here
  172 |   R2Point coords_;
      |           ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/util/math/vector.h:183:17: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  183 |     return sqrt(Norm2());
      |                 ^
../src/s2/util/math/vector.h:189:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm' requested here
  189 |     T n = Norm();
      |           ^
../src/s2/s2point.h:157:44: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Normalize' requested here
  157 |   S2Point Normalize() const { return Base::Normalize(); }
      |                                            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1angle.cc:18:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
68 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s1chord_angle.cc -o s2/s1chord_angle.o
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1chord_angle.cc:18:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/s1chord_angle.h:315:36: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  315 |   length2_ = std::min(4.0, (x - y).Norm2());
      |                                    ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
59 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s1interval.cc -o s2/s1interval.o
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s1interval.h:221:13: note: in instantiation of template class 'Vector2<double>' requested here
  221 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s1interval.h:49:7: note: in instantiation of template class 'Vector3<double>' requested here
   49 | class S1Interval {
      |       ^
s2/s1interval.cc:208:28: note: in implicit copy constructor for 'S1Interval' first required here
  208 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s1interval.h:49:7: note: in instantiation of template class 'Vector4<double>' requested here
   49 | class S1Interval {
      |       ^
s2/s1interval.cc:208:28: note: in implicit copy constructor for 'S1Interval' first required here
  208 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s1interval.cc:18:
In file included from ../src/s2/s1interval.h:28:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
35 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2boolean_operation.cc -o s2/s2boolean_operation.o
In file included from s2/s2boolean_operation.cc:67:
In file included from ../src/s2/s2boolean_operation.h:26:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2boolean_operation.cc:67:
In file included from ../src/s2/s2boolean_operation.h:26:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2buffer_operation.cc -o s2/s2buffer_operation.o
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:26:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:26:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<int>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2buffer_operation.cc:488:23: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<int, Vector3, double, 3UL>' requested here
  488 |   return buffer_sign_ * S2::RobustCrossProd(b, a).Normalize();
      |                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2buffer_operation.cc:49:
In file included from ../src/s2/s2buffer_operation.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<int>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2buffer_operation.cc:488:23: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<int, Vector3, double, 3UL>' requested here
  488 |   return buffer_sign_ * S2::RobustCrossProd(b, a).Normalize();
      |                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
92 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builder_graph.cc -o s2/s2builder_graph.o
In file included from s2/s2builder_graph.cc:18:
In file included from ../src/s2/s2builder_graph.h:31:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builder_graph.cc:18:
In file included from ../src/s2/s2builder_graph.h:31:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builder.cc -o s2/s2builder.o
In file included from s2/s2builder.cc:71:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builder.cc:71:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_closed_set_normalizer.cc -o s2/s2builderutil_closed_set_normalizer.o
In file included from s2/s2builderutil_closed_set_normalizer.cc:18:
In file included from ../src/s2/s2builderutil_closed_set_normalizer.h:25:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_closed_set_normalizer.cc:18:
In file included from ../src/s2/s2builderutil_closed_set_normalizer.h:25:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_find_polygon_degeneracies.cc -o s2/s2builderutil_find_polygon_degeneracies.o
In file included from s2/s2builderutil_find_polygon_degeneracies.cc:18:
In file included from ../src/s2/s2builderutil_find_polygon_degeneracies.h:24:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_find_polygon_degeneracies.cc:18:
In file included from ../src/s2/s2builderutil_find_polygon_degeneracies.h:24:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_get_snapped_winding_delta.cc -o s2/s2builderutil_get_snapped_winding_delta.o
In file included from s2/s2builderutil_get_snapped_winding_delta.cc:50:
In file included from ../src/s2/s2builderutil_get_snapped_winding_delta.h:24:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_get_snapped_winding_delta.cc:50:
In file included from ../src/s2/s2builderutil_get_snapped_winding_delta.h:24:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_lax_polygon_layer.cc -o s2/s2builderutil_lax_polygon_layer.o
In file included from s2/s2builderutil_lax_polygon_layer.cc:18:
In file included from ../src/s2/s2builderutil_lax_polygon_layer.h:42:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_lax_polygon_layer.cc:18:
In file included from ../src/s2/s2builderutil_lax_polygon_layer.h:42:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_lax_polyline_layer.cc -o s2/s2builderutil_lax_polyline_layer.o
In file included from s2/s2builderutil_lax_polyline_layer.cc:18:
In file included from ../src/s2/s2builderutil_lax_polyline_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_lax_polyline_layer.cc:18:
In file included from ../src/s2/s2builderutil_lax_polyline_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_s2point_vector_layer.cc -o s2/s2builderutil_s2point_vector_layer.o
In file included from s2/s2builderutil_s2point_vector_layer.cc:18:
In file included from ../src/s2/s2builderutil_s2point_vector_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_s2point_vector_layer.cc:18:
In file included from ../src/s2/s2builderutil_s2point_vector_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_s2polygon_layer.cc -o s2/s2builderutil_s2polygon_layer.o
In file included from s2/s2builderutil_s2polygon_layer.cc:18:
In file included from ../src/s2/s2builderutil_s2polygon_layer.h:42:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_s2polygon_layer.cc:18:
In file included from ../src/s2/s2builderutil_s2polygon_layer.h:42:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_s2polyline_layer.cc -o s2/s2builderutil_s2polyline_layer.o
In file included from s2/s2builderutil_s2polyline_layer.cc:18:
In file included from ../src/s2/s2builderutil_s2polyline_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_s2polyline_layer.cc:18:
In file included from ../src/s2/s2builderutil_s2polyline_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_s2polyline_vector_layer.cc -o s2/s2builderutil_s2polyline_vector_layer.o
In file included from s2/s2builderutil_s2polyline_vector_layer.cc:18:
In file included from ../src/s2/s2builderutil_s2polyline_vector_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_s2polyline_vector_layer.cc:18:
In file included from ../src/s2/s2builderutil_s2polyline_vector_layer.h:27:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2builderutil_snap_functions.cc -o s2/s2builderutil_snap_functions.o
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:24:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:24:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2builderutil_snap_functions.cc:18:
In file included from ../src/s2/s2builderutil_snap_functions.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2cap.cc -o s2/s2cap.o
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cap.cc:18:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2cell_id.cc -o s2/s2cell_id.o
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_id.cc:18:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
68 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2cell_index.cc -o s2/s2cell_index.o
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:31:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_index.cc:18:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
68 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2cell_union.cc -o s2/s2cell_union.o
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_union.cc:34:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2cell_union.cc:34:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
s2/s2cell_union.cc:48:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
   48 | S2_DEFINE_int32(s2cell_union_decode_max_num_cells, 1000000,
      | ^
../src/s2/base/commandlineflags.h:33:3: note: expanded from macro 'S2_DEFINE_int32'
   33 |   ABSL_FLAG(int32, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2cell_union.cc:238:22: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  238 |     centroid += area * id.ToPoint();
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell_union.cc:18:
In file included from ../src/s2/s2cell_union.h:37:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2cell_union.cc:238:22: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  238 |     centroid += area * id.ToPoint();
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
77 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2cell.cc -o s2/s2cell.o
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2cell.cc:18:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2centroids.cc -o s2/s2centroids.o
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:23:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2centroids.cc:23:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2centroids.cc:28:17: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
   28 |   return (1./3) * (a + b + c);
      |                 ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2centroids.cc:28:17: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
   28 |   return (1./3) * (a + b + c);
      |                 ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2centroids.cc:18:
In file included from ../src/s2/s2centroids.h:50:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
s2/s2centroids.cc:68:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
   68 |   return 0.5 * S2Point(y.CrossProd(z).DotProd(r),
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
61 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2closest_cell_query.cc -o s2/s2closest_cell_query.o
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:27:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:27:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:30:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:30:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:32:
In file included from ../src/s2/s2closest_cell_query_base.h:43:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:32:
In file included from ../src/s2/s2closest_cell_query_base.h:43:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:32:
In file included from ../src/s2/s2closest_cell_query_base.h:43:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:32:
In file included from ../src/s2/s2closest_cell_query_base.h:43:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:32:
In file included from ../src/s2/s2closest_cell_query_base.h:43:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:32:
In file included from ../src/s2/s2closest_cell_query_base.h:43:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:32:
In file included from ../src/s2/s2closest_cell_query_base.h:43:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:30:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:30:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:30:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:30:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_cell_query.cc:18:
In file included from ../src/s2/s2closest_cell_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2closest_edge_query.cc -o s2/s2closest_edge_query.o
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_edge_query.cc:18:
In file included from ../src/s2/s2closest_edge_query.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2closest_point_query.cc -o s2/s2closest_point_query.o
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:27:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:27:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:35:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:35:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:36:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:36:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:36:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:36:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:36:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:36:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:36:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:35:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:35:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:35:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:29:
In file included from ../src/s2/s2closest_point_query_base.h:35:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2closest_point_query.cc:18:
In file included from ../src/s2/s2closest_point_query.h:26:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2contains_vertex_query.cc -o s2/s2contains_vertex_query.o
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
/usr/include/absl/container/internal/container_memory.h:355:14: note: in instantiation of template class 'std::pair<const S2Point, int>' requested here
  355 |   value_type value;
      |              ^
/usr/include/absl/container/internal/btree.h:443:44: note: in instantiation of template class 'absl::container_internal::map_slot_type<S2Point, int>' requested here
  443 |       std::conditional_t<(kNodeSlotSpace / sizeof(slot_type) >
      |                                            ^
/usr/include/absl/container/btree_map.h:886:7: note: in instantiation of template class 'absl::container_internal::common_params<S2Point, std::less<S2Point>, std::allocator<std::pair<const S2Point, int>>, 256, false, true, absl::container_internal::map_slot_policy<S2Point, int>>' requested here
  886 |     : common_params<
      |       ^
/usr/include/absl/container/internal/btree.h:1344:38: note: (skipping 1 context in backtrace; use -ftemplate-backtrace-limit=0 to see all)
 1344 |   using is_key_compare_to = typename Params::is_key_compare_to;
      |                                      ^
/usr/include/absl/container/internal/btree_container.h:41:32: note: in instantiation of template class 'absl::container_internal::btree<absl::container_internal::map_params_impl<S2Point, int>>' requested here
   41 |   using params_type = typename Tree::params_type;
      |                                ^
/usr/include/absl/container/internal/btree_container.h:283:36: note: in instantiation of template class 'absl::container_internal::btree_container<absl::container_internal::btree<absl::container_internal::map_params_impl<S2Point, int>>>' requested here
  283 | class btree_set_container : public btree_container<Tree> {
      |                                    ^
/usr/include/absl/container/internal/btree_container.h:449:36: note: in instantiation of template class 'absl::container_internal::btree_set_container<absl::container_internal::btree<absl::container_internal::map_params_impl<S2Point, int>>>' requested here
  449 | class btree_map_container : public btree_set_container<Tree> {
      |                                    ^
/usr/include/absl/container/btree_map.h:119:14: note: in instantiation of template class 'absl::container_internal::btree_map_container<absl::container_internal::btree<absl::container_internal::map_params_impl<S2Point, int>>>' requested here
  119 |     : public container_internal::btree_map_container<
      |              ^
../src/s2/s2contains_vertex_query.h:51:33: note: in instantiation of template class 'absl::btree_map<S2Point, int>' requested here
   51 |   absl::btree_map<S2Point, int> edge_map_;
      |                                 ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:25:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2contains_vertex_query.cc:25:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2contains_vertex_query.cc:18:
In file included from ../src/s2/s2contains_vertex_query.h:22:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
66 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2convex_hull_query.cc -o s2/s2convex_hull_query.o
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:28:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:27:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2convex_hull_query.cc:26:
In file included from ../src/s2/s2convex_hull_query.h:25:
In file included from ../src/s2/s2cap.h:30:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2coords.cc -o s2/s2coords.o
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:108:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:108:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:108:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:108:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2coords.h:368:30: note: in instantiation of template class 'Vector2<double>' requested here
  368 |   return FaceUVtoXYZ(face, uv[0], uv[1]);
      |                              ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2coords.cc:18:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
64 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2crossing_edge_query.cc -o s2/s2crossing_edge_query.o
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:31:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:31:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:31:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:31:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:33:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:33:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2crossing_edge_query.cc:18:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
99 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2debug.cc -o s2/s2debug.o
s2/s2debug.cc:23:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
   23 | S2_DEFINE_bool(s2debug, !!google::DEBUG_MODE,
      | ^
../src/s2/base/commandlineflags.h:27:3: note: expanded from macro 'S2_DEFINE_bool'
   27 |   ABSL_FLAG(bool, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
1 warning generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2earth.cc -o s2/s2earth.o
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:25:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:25:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2latlng.h:172:11: note: in instantiation of template class 'Vector2<double>' requested here
  172 |   R2Point coords_;
      |           ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/s1chord_angle.h:315:36: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  315 |   length2_ = std::min(4.0, (x - y).Norm2());
      |                                    ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2earth.cc:16:
In file included from ../src/s2/s2earth.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
70 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2edge_clipping.cc -o s2/s2edge_clipping.o
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:39:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:39:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:39:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:39:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_clipping.cc:28:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2edge_clipping.cc:28:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_clipping.cc:18:
In file included from ../src/s2/s2edge_clipping.h:37:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
s2/s2edge_clipping.cc:376:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::DotProd' requested here
  376 |   double max = n.DotProd(rect.GetVertex(i, j) - a);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
89 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2edge_crosser.cc -o s2/s2edge_crosser.o
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:40:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:40:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:40:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:40:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crosser.cc:18:
In file included from ../src/s2/s2edge_crosser.h:23:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
88 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2edge_crossings.cc -o s2/s2edge_crossings.o
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:40:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:40:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:40:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:40:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, long double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/util/math/vector.h:137:44: note: in instantiation of template class 'Vector4<long double>' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                            ^
s2/s2edge_crossings.cc:123:16: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator-' requested here
  123 |   *result = (a - b).CrossProd(a + b);
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
s2/s2edge_crossings.cc:123:16: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator-' requested here
  123 |   *result = (a - b).CrossProd(a + b);
      |                ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
s2/s2edge_crossings.cc:123:33: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator+' requested here
  123 |   *result = (a - b).CrossProd(a + b);
      |                                 ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
s2/s2edge_crossings.cc:124:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Norm2' requested here
  124 |   return result->Norm2() >= kMinNorm * kMinNorm;
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<long double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
s2/s2edge_crossings.cc:160:23: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Cast<long double>' requested here
  160 |     return Vector3_d::Cast(result_ld);
      |                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const long double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<long double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
s2/s2edge_crossings.cc:160:23: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Cast<long double>' requested here
  160 |     return Vector3_d::Cast(result_ld);
      |                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2edge_crossings.cc:295:40: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  295 |     return ldexp(2, -1 - ilogb(p_max)) * p;
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2edge_crossings.cc:295:40: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  295 |     return ldexp(2, -1 - ilogb(p_max)) * p;
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<long double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::MulScalarInternal<long double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2edge_crossings.cc:422:28: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<long double, Vector3, long double, 3UL>' requested here
  422 |     *result = (1 / length) * tmp;
      |                            ^
s2/s2edge_crossings.cc:476:7: note: in instantiation of function template specialization 'S2::RobustNormalWithLength<long double>' requested here
  476 |   if (RobustNormalWithLength(a0, a1, &a_norm) >= kMinNormalLength &&
      |       ^
s2/s2edge_crossings.cc:490:7: note: in instantiation of function template specialization 'S2::GetIntersectionSimple<long double>' requested here
  490 |   if (GetIntersectionSimple(ToLD(a0), ToLD(a1), ToLD(b0), ToLD(b1),
      |       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const long double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<long double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::MulScalarInternal<long double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2edge_crossings.cc:422:28: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<long double, Vector3, long double, 3UL>' requested here
  422 |     *result = (1 / length) * tmp;
      |                            ^
s2/s2edge_crossings.cc:476:7: note: in instantiation of function template specialization 'S2::RobustNormalWithLength<long double>' requested here
  476 |   if (RobustNormalWithLength(a0, a1, &a_norm) >= kMinNormalLength &&
      |       ^
s2/s2edge_crossings.cc:490:7: note: in instantiation of function template specialization 'S2::GetIntersectionSimple<long double>' requested here
  490 |   if (GetIntersectionSimple(ToLD(a0), ToLD(a1), ToLD(b0), ToLD(b1),
      |       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
s2/s2edge_crossings.cc:480:13: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator*=' requested here
  480 |     *result *= (a_norm.DotProd(b1 - b0) < 0) ? -1 : 1;
      |             ^
s2/s2edge_crossings.cc:490:7: note: in instantiation of function template specialization 'S2::GetIntersectionSimple<long double>' requested here
  490 |   if (GetIntersectionSimple(ToLD(a0), ToLD(a1), ToLD(b0), ToLD(b1),
      |       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<int>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2edge_crossings.cc:679:37: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<int, Vector3, double, 3UL>' requested here
  679 |     return s2pred::Sign(a0, a1, b1) * ToS2Point(x_xf);
      |                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_crossings.cc:18:
In file included from ../src/s2/s2edge_crossings.h:38:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<int>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2edge_crossings.cc:679:37: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<int, Vector3, double, 3UL>' requested here
  679 |     return s2pred::Sign(a0, a1, b1) * ToS2Point(x_xf);
      |                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
107 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2edge_distances.cc -o s2/s2edge_distances.o
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:30:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:30:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<int>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2edge_distances.cc:475:29: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<int, Vector3, double, 3UL>' requested here
  475 |   S2Point furthest_inv = -1 * furthest;
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_distances.cc:18:
In file included from ../src/s2/s2edge_distances.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<int>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2edge_distances.cc:475:29: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<int, Vector3, double, 3UL>' requested here
  475 |   S2Point furthest_inv = -1 * furthest;
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
92 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2edge_tessellator.cc -o s2/s2edge_tessellator.o
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:25:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:25:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2latlng.h:172:11: note: in instantiation of template class 'Vector2<double>' requested here
  172 |   R2Point coords_;
      |           ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2edge_tessellator.cc:18:
In file included from ../src/s2/s2edge_tessellator.h:23:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2error.cc -o s2/s2error.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2furthest_edge_query.cc -o s2/s2furthest_edge_query.o
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:30:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:30:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:33:
In file included from ../src/s2/s2closest_edge_query_base.h:41:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2furthest_edge_query.cc:16:
In file included from ../src/s2/s2furthest_edge_query.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2hausdorff_distance_query.cc -o s2/s2hausdorff_distance_query.o
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:24:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:24:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:25:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2hausdorff_distance_query.cc:16:
In file included from ../src/s2/s2hausdorff_distance_query.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2latlng_rect_bounder.cc -o s2/s2latlng_rect_bounder.o
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2latlng.h:172:11: note: in instantiation of template class 'Vector2<double>' requested here
  172 |   R2Point coords_;
      |           ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:30:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2latlng_rect_bounder.cc:30:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect_bounder.cc:18:
In file included from ../src/s2/s2latlng_rect_bounder.h:21:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
s2/s2latlng_rect_bounder.cc:76:14: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
   76 |       if (a_.DotProd(b) < 0) {
      |              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
70 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2latlng_rect.cc -o s2/s2latlng_rect.o
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:27:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:27:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:27:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:27:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:30:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2latlng_rect.cc:30:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng_rect.cc:18:
In file included from ../src/s2/s2latlng_rect.h:29:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2latlng.cc -o s2/s2latlng.o
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2latlng.h:172:11: note: in instantiation of template class 'Vector2<double>' requested here
  172 |   R2Point coords_;
      |           ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/util/math/vector.h:183:17: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  183 |     return sqrt(Norm2());
      |                 ^
../src/s2/util/math/vector.h:189:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm' requested here
  189 |     T n = Norm();
      |           ^
../src/s2/s2point.h:157:44: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Normalize' requested here
  157 |   S2Point Normalize() const { return Base::Normalize(); }
      |                                            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2latlng.cc:18:
In file included from ../src/s2/s2latlng.h:31:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
68 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2lax_loop_shape.cc -o s2/s2lax_loop_shape.o
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
s2/s2lax_loop_shape.cc:38:27: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
   38 |       num_vertices_(absl::exchange(other.num_vertices_, 0)),
      |                           ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/s2lax_loop_shape.cc:43:25: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
   43 |   num_vertices_ = absl::exchange(other.num_vertices_, 0);
      |                         ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/s2lax_loop_shape.cc:95:27: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
   95 |       num_vertices_(absl::exchange(other.num_vertices_, 0)),
      |                           ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/s2lax_loop_shape.cc:102:25: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
  102 |   num_vertices_ = absl::exchange(other.num_vertices_, 0);
      |                         ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_loop_shape.cc:18:
In file included from ../src/s2/s2lax_loop_shape.h:41:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2lax_polygon_shape.cc -o s2/s2lax_polygon_shape.o
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:27:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:27:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:27:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:27:
In file included from ../src/s2/encoded_string_vector.h:30:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:31:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:31:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:36:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polygon_shape.cc:18:
In file included from ../src/s2/s2lax_polygon_shape.h:31:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2lax_polyline_shape.cc -o s2/s2lax_polyline_shape.o
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:27:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:27:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:27:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:27:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:31:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:31:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2lax_polyline_shape.cc:18:
In file included from ../src/s2/s2lax_polyline_shape.h:28:
In file included from ../src/s2/encoded_s2point_vector.h:30:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2loop_measures.cc -o s2/s2loop_measures.o
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:34:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:34:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop_measures.cc:18:
In file included from ../src/s2/s2loop_measures.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
88 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2loop.cc -o s2/s2loop.o
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
s2/s2loop.cc:82:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
   82 | S2_DEFINE_bool(
      | ^
../src/s2/base/commandlineflags.h:27:3: note: expanded from macro 'S2_DEFINE_bool'
   27 |   ABSL_FLAG(bool, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
s2/s2loop.cc:91:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
   91 | S2_DEFINE_int32(
      | ^
../src/s2/base/commandlineflags.h:33:3: note: expanded from macro 'S2_DEFINE_int32'
   33 |   ABSL_FLAG(int32, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
s2/s2loop.cc:113:20: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
  113 |       depth_(absl::exchange(b.depth_, 0)),
      |                    ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/s2loop.cc:114:27: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
  114 |       num_vertices_(absl::exchange(b.num_vertices_, 0)),
      |                           ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/s2loop.cc:132:18: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
  132 |   depth_ = absl::exchange(b.depth_, 0);
      |                  ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/s2loop.cc:133:25: warning: 'exchange<int, int>' is deprecated [-Wdeprecated-declarations]
  133 |   num_vertices_ = absl::exchange(b.num_vertices_, 0);
      |                         ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<int, int>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2loop.cc:18:
In file included from ../src/s2/s2loop.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
111 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2max_distance_targets.cc -o s2/s2max_distance_targets.o
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2max_distance_targets.cc:16:
In file included from ../src/s2/s2max_distance_targets.h:31:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2measures.cc -o s2/s2measures.o
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:23:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2measures.cc:23:
In file included from ../src/s2/s2edge_crossings.h:41:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2measures.cc:18:
In file included from ../src/s2/s2measures.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
88 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2memory_tracker.cc -o s2/s2memory_tracker.o
In file included from s2/s2memory_tracker.cc:18:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2memory_tracker.cc:18:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2memory_tracker.cc:18:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2memory_tracker.cc:18:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
4 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2metrics.cc -o s2/s2metrics.o
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:108:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:108:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:108:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:108:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2coords.h:368:30: note: in instantiation of template class 'Vector2<double>' requested here
  368 |   return FaceUVtoXYZ(face, uv[0], uv[1]);
      |                              ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2metrics.cc:31:
In file included from ../src/s2/s2metrics.h:34:
In file included from ../src/s2/s2coords.h:106:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
64 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2min_distance_targets.cc -o s2/s2min_distance_targets.o
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:30:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:30:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:35:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:33:
In file included from ../src/s2/s2cell_index.h:32:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2min_distance_targets.cc:18:
In file included from ../src/s2/s2min_distance_targets.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2padded_cell.cc -o s2/s2padded_cell.o
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2padded_cell.cc:18:
In file included from ../src/s2/s2padded_cell.h:22:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
64 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2point_compression.cc -o s2/s2point_compression.o
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:50:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:50:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:50:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:50:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_compression.cc:17:
In file included from ../src/s2/s2point_compression.h:52:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
s2/s2point_compression.cc:171:12: warning: unused function 'STtoPiQi' [-Wunused-function]
  171 | inline int STtoPiQi(double s, int level) {
      |            ^~~~~~~~
65 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2point_region.cc -o s2/s2point_region.o
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2point_region.h:42:7: note: while declaring the implicit copy constructor for 'S2PointRegion'
   42 | class S2PointRegion final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2point_region.cc:18:
In file included from ../src/s2/s2point_region.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
70 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2pointutil.cc -o s2/s2pointutil.o
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
s2/s2pointutil.cc:69:22: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
   69 |   S2Point center = p.DotProd(axis) * axis;
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2pointutil.cc:69:36: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
   69 |   S2Point center = p.DotProd(axis) * axis;
      |                                    ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2pointutil.cc:18:
In file included from ../src/s2/s2pointutil.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2pointutil.cc:69:36: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
   69 |   S2Point center = p.DotProd(axis) * axis;
      |                                    ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
61 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2polygon.cc -o s2/s2polygon.o
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
s2/s2polygon.cc:96:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
   96 | S2_DEFINE_bool(
      | ^
../src/s2/base/commandlineflags.h:27:3: note: expanded from macro 'S2_DEFINE_bool'
   27 |   ABSL_FLAG(bool, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
s2/s2polygon.cc:104:1: warning: '__COUNTER__' is a C2y extension [-Wc2y-extensions]
  104 | S2_DEFINE_int32(
      | ^
../src/s2/base/commandlineflags.h:33:3: note: expanded from macro 'S2_DEFINE_int32'
   33 |   ABSL_FLAG(int32, name, default_value, description)
      |   ^
/usr/include/absl/flags/flag.h:170:3: note: expanded from macro 'ABSL_FLAG'
  170 |   ABSL_FLAG_IMPL(Type, name, default_value, help)
      |   ^
/usr/include/absl/flags/flag.h:272:3: note: expanded from macro 'ABSL_FLAG_IMPL'
  272 |   ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER(name, help)                     \
      |   ^
/usr/include/absl/flags/flag.h:250:44: note: expanded from macro 'ABSL_FLAG_IMPL_DECLARE_HELP_WRAPPER'
  250 |   constexpr auto FLAGS_help_storage_##name ABSL_INTERNAL_UNIQUE_SMALL_NAME() \
      |                                            ^
/usr/include/absl/base/optimization.h:306:46: note: expanded from macro 'ABSL_INTERNAL_UNIQUE_SMALL_NAME'
  306 |   asm(ABSL_INTERNAL_UNIQUE_SMALL_NAME1(.absl.__COUNTER__))
      |                                              ^
s2/s2polygon.cc:1474:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
 1474 |   S2_CHECK_GE(snap_level, 0);
      |   ^
../src/s2/base/logging.h:41:21: note: expanded from macro 'S2_CHECK_GE'
   41 | #define S2_CHECK_GE CHECK_GE
      |                     ^
/usr/include/absl/log/check.h:126:3: note: expanded from macro 'CHECK_GE'
  126 |   ABSL_LOG_INTERNAL_CHECK_GE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:57:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_GE_IMPL'
   57 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_GE, >=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
s2/s2polygon.cc:1474:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:41:21: note: expanded from macro 'S2_CHECK_GE'
   41 | #define S2_CHECK_GE CHECK_GE
      |                     ^
/usr/include/absl/log/check.h:126:3: note: expanded from macro 'CHECK_GE'
  126 |   ABSL_LOG_INTERNAL_CHECK_GE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:57:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_GE_IMPL'
   57 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_GE, >=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<int>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2polygon.cc:553:33: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<int, Vector3, double, 3UL>' requested here
  553 |     centroid += loop(i)->sign() * loop(i)->GetCentroid();
      |                                 ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<int>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
s2/s2polygon.cc:553:33: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<int, Vector3, double, 3UL>' requested here
  553 |     centroid += loop(i)->sign() * loop(i)->GetCentroid();
      |                                 ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<int>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
/usr/lib/gcc/x86_64-linux-gnu/16/../../../../include/c++/16/type_traits:1543:30: note: in instantiation of template class 'gtl::compact_array<int>' requested here
 1543 |     : public __bool_constant<__is_trivially_destructible(_Tp)>
      |                              ^
/usr/lib/gcc/x86_64-linux-gnu/16/../../../../include/c++/16/bits/stl_construct.h:224:22: note: in instantiation of template class 'std::is_trivially_destructible<gtl::compact_array<int>>' requested here
  224 |       if constexpr (!is_trivially_destructible<_Value_type>::value)
      |                      ^
/usr/lib/gcc/x86_64-linux-gnu/16/../../../../include/c++/16/bits/alloc_traits.h:1085:12: note: in instantiation of function template specialization 'std::_Destroy<gtl::compact_array<int> *>' requested here
 1085 |       std::_Destroy(__first, __last);
      |            ^
/usr/lib/gcc/x86_64-linux-gnu/16/../../../../include/c++/16/bits/stl_vector.h:792:7: note: in instantiation of function template specialization 'std::_Destroy<gtl::compact_array<int> *, gtl::compact_array<int>>' requested here
  792 |         std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
      |              ^
../src/s2/s2builder.h:145:7: note: in instantiation of member function 'std::vector<gtl::compact_array<int>>::~vector' requested here
  145 | class S2Builder {
      |       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polygon.cc:18:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
114 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2polyline_alignment.cc -o s2/s2polyline_alignment.o
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:34:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:34:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
s2/s2polyline_alignment.cc:351:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  351 |   S2_CHECK_GT(num_polylines, 0);
      |   ^
../src/s2/base/logging.h:40:21: note: expanded from macro 'S2_CHECK_GT'
   40 | #define S2_CHECK_GT CHECK_GT
      |                     ^
/usr/include/absl/log/check.h:128:3: note: expanded from macro 'CHECK_GT'
  128 |   ABSL_LOG_INTERNAL_CHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:59:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_GT_IMPL'
   59 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_GT, >, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
s2/s2polyline_alignment.cc:351:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:40:21: note: expanded from macro 'S2_CHECK_GT'
   40 | #define S2_CHECK_GT CHECK_GT
      |                     ^
/usr/include/absl/log/check.h:128:3: note: expanded from macro 'CHECK_GT'
  128 |   ABSL_LOG_INTERNAL_CHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:59:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_GT_IMPL'
   59 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_GT, >, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
s2/s2polyline_alignment.cc:388:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  388 |   S2_CHECK_GT(num_polylines, 0);
      |   ^
../src/s2/base/logging.h:40:21: note: expanded from macro 'S2_CHECK_GT'
   40 | #define S2_CHECK_GT CHECK_GT
      |                     ^
/usr/include/absl/log/check.h:128:3: note: expanded from macro 'CHECK_GT'
  128 |   ABSL_LOG_INTERNAL_CHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:59:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_GT_IMPL'
   59 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_GT, >, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
s2/s2polyline_alignment.cc:388:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:40:21: note: expanded from macro 'S2_CHECK_GT'
   40 | #define S2_CHECK_GT CHECK_GT
      |                     ^
/usr/include/absl/log/check.h:128:3: note: expanded from macro 'CHECK_GT'
  128 |   ABSL_LOG_INTERNAL_CHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:59:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_GT_IMPL'
   59 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_GT, >, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_alignment.cc:17:
In file included from ../src/s2/s2polyline_alignment.h:24:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
94 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2polyline_measures.cc -o s2/s2polyline_measures.o
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
s2/s2polyline_measures.cc:41:10: note: in instantiation of template class 'Vector2<double>' requested here
   41 |   return centroid;
      |          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/util/math/vector.h:183:17: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  183 |     return sqrt(Norm2());
      |                 ^
../src/s2/util/math/vector.h:189:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm' requested here
  189 |     T n = Norm();
      |           ^
../src/s2/s2point.h:157:44: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Normalize' requested here
  157 |   S2Point Normalize() const { return Base::Normalize(); }
      |                                            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_measures.cc:18:
In file included from ../src/s2/s2polyline_measures.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
64 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2polyline_simplifier.cc -o s2/s2polyline_simplifier.o
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s1interval.h:221:13: note: in instantiation of template class 'Vector2<double>' requested here
  221 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline_simplifier.cc:18:
In file included from ../src/s2/s2polyline_simplifier.h:63:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
s2/s2polyline_simplifier.cc:160:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  160 |   return atan2(p.DotProd(y_dir_), p.DotProd(x_dir_));
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
66 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2polyline.cc -o s2/s2polyline.o
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:34:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:34:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2polyline.cc:18:
In file included from ../src/s2/s2polyline.h:33:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
90 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2predicates.cc -o s2/s2predicates.o
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
s2/s2predicates.cc:244:23: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::DotProd' requested here
  244 |   ExactFloat det = xa.DotProd(xb_cross_xc);
      |                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
s2/s2predicates.cc:328:21: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::DotProd' requested here
  328 |   long double c = x.DotProd(y) / sqrt(x.Norm2() * y.Norm2());
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, long double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/util/math/vector.h:137:44: note: in instantiation of template class 'Vector4<long double>' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                            ^
s2/s2predicates.cc:361:21: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator-' requested here
  361 |   Vector3_ld n = (x - y).CrossProd(x + y);
      |                     ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
s2/s2predicates.cc:361:21: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator-' requested here
  361 |   Vector3_ld n = (x - y).CrossProd(x + y);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
s2/s2predicates.cc:361:38: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::operator+' requested here
  361 |   Vector3_ld n = (x - y).CrossProd(x + y);
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<ExactFloat> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
s2/s2predicates.cc:867:19: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  867 |   S2_DCHECK_NE(a, -b);
      |                   ^
../src/s2/base/logging.h:45:22: note: expanded from macro 'S2_DCHECK_NE'
   45 | #define S2_DCHECK_NE DCHECK_NE
      |                      ^
/usr/include/absl/log/check.h:144:52: note: expanded from macro 'DCHECK_NE'
  144 |   ABSL_LOG_INTERNAL_DCHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |                                                    ^
/usr/include/absl/log/internal/check_impl.h:89:38: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NE_IMPL'
   89 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                      ^
/usr/include/absl/log/internal/check_op.h:63:38: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const ExactFloat>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<ExactFloat> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
s2/s2predicates.cc:867:19: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  867 |   S2_DCHECK_NE(a, -b);
      |                   ^
../src/s2/base/logging.h:45:22: note: expanded from macro 'S2_DCHECK_NE'
   45 | #define S2_DCHECK_NE DCHECK_NE
      |                      ^
/usr/include/absl/log/check.h:144:52: note: expanded from macro 'DCHECK_NE'
  144 |   ABSL_LOG_INTERNAL_DCHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |                                                    ^
/usr/include/absl/log/internal/check_impl.h:89:38: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NE_IMPL'
   89 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                      ^
/usr/include/absl/log/internal/check_op.h:63:38: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<long double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
s2/s2predicates.cc:796:19: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  796 |   S2_DCHECK_NE(a, -b);
      |                   ^
../src/s2/base/logging.h:45:22: note: expanded from macro 'S2_DCHECK_NE'
   45 | #define S2_DCHECK_NE DCHECK_NE
      |                      ^
/usr/include/absl/log/check.h:144:52: note: expanded from macro 'DCHECK_NE'
  144 |   ABSL_LOG_INTERNAL_DCHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |                                                    ^
/usr/include/absl/log/internal/check_impl.h:89:38: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NE_IMPL'
   89 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                      ^
/usr/include/absl/log/internal/check_op.h:63:38: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2predicates.cc:18:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const long double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<long double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
s2/s2predicates.cc:796:19: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  796 |   S2_DCHECK_NE(a, -b);
      |                   ^
../src/s2/base/logging.h:45:22: note: expanded from macro 'S2_DCHECK_NE'
   45 | #define S2_DCHECK_NE DCHECK_NE
      |                      ^
/usr/include/absl/log/check.h:144:52: note: expanded from macro 'DCHECK_NE'
  144 |   ABSL_LOG_INTERNAL_DCHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |                                                    ^
/usr/include/absl/log/internal/check_impl.h:89:38: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NE_IMPL'
   89 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                      ^
/usr/include/absl/log/internal/check_op.h:63:38: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2projections.cc -o s2/s2projections.o
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:28:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:28:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:28:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:28:
In file included from ../src/s2/s2latlng.h:32:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2latlng.h:172:11: note: in instantiation of template class 'Vector2<double>' requested here
  172 |   R2Point coords_;
      |           ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/util/math/vector.h:183:17: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  183 |     return sqrt(Norm2());
      |                 ^
../src/s2/util/math/vector.h:189:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm' requested here
  189 |     T n = Norm();
      |           ^
../src/s2/s2point.h:157:44: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Normalize' requested here
  157 |   S2Point Normalize() const { return Base::Normalize(); }
      |                                            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2projections.cc:18:
In file included from ../src/s2/s2projections.h:27:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
68 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2r2rect.cc -o s2/s2r2rect.o
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:29:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2r2rect.cc:23:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2r2rect.cc:23:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2r2rect.cc:18:
In file included from ../src/s2/s2r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
70 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2region_coverer.cc -o s2/s2region_coverer.o
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:27:
In file included from ../src/s2/r2rect.h:26:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_coverer.cc:18:
In file included from ../src/s2/s2region_coverer.h:33:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
70 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2region_intersection.cc -o s2/s2region_intersection.o
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:23:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2region_intersection.cc:23:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/s1chord_angle.h:315:36: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  315 |   length2_ = std::min(4.0, (x - y).Norm2());
      |                                    ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_intersection.cc:17:
In file included from ../src/s2/s2region_intersection.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
70 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2region_term_indexer.cc -o s2/s2region_term_indexer.o
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:106:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:106:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:109:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:109:
In file included from ../src/s2/s2region_coverer.h:31:
In file included from ../src/s2/s2cell.h:28:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:105:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:106:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_term_indexer.cc:75:
In file included from ../src/s2/s2region_term_indexer.h:106:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
70 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2region_union.cc -o s2/s2region_union.o
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:24:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2region_union.cc:24:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/s1chord_angle.h:315:36: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  315 |   length2_ = std::min(4.0, (x - y).Norm2());
      |                                    ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region_union.cc:18:
In file included from ../src/s2/s2region_union.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
70 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2region.cc -o s2/s2region.o
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:22:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2region.cc:22:
In file included from ../src/s2/s2cap.h:31:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2region.cc:18:
In file included from ../src/s2/s2region.h:24:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/util/math/vector.h:178:28: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  178 |   T Norm2() const { return DotProd(AsD()); }
      |                            ^
../src/s2/s1chord_angle.h:315:36: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Norm2' requested here
  315 |   length2_ = std::min(4.0, (x - y).Norm2());
      |                                    ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
66 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shape_index_buffered_region.cc -o s2/s2shape_index_buffered_region.o
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:24:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:24:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2point.h:36:7: note: in instantiation of template class 'Vector2<double>' requested here
   36 | class S2Point : public Vector3_d {
      |       ^
../src/s2/s2cap.h:64:7: note: while declaring the implicit copy constructor for 'S2Cap'
   64 | class S2Cap final : public S2Region {
      |       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:29:
In file included from ../src/s2/s2closest_edge_query.h:34:
In file included from ../src/s2/s2closest_edge_query_base.h:42:
In file included from ../src/s2/s2distance_target.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:28:
In file included from ../src/s2/s2cell_union.h:39:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_buffered_region.cc:18:
In file included from ../src/s2/s2shape_index_buffered_region.h:23:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shape_index_measures.cc -o s2/s2shape_index_measures.o
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:63:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:63:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:25:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index_measures.cc:18:
In file included from ../src/s2/s2shape_index_measures.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
77 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shape_index.cc -o s2/s2shape_index.o
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:63:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:63:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:60:
In file included from ../src/s2/s2cell_id.h:41:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_index.cc:18:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
s2/s2shape_index.cc:58:11: note: in instantiation of member function 'gtl::compact_array_base<S2ClippedShape>::resize' requested here
   58 |   shapes_.resize(size + n);
      |           ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
78 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shape_measures.cc -o s2/s2shape_measures.o
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:29:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:29:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_measures.cc:18:
In file included from ../src/s2/s2shape_measures.h:27:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
88 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shape_nesting_query.cc -o s2/s2shape_nesting_query.o
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:131:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  131 |     S2_CHECK_LT(array_index, array_size());
      |     ^
../src/s2/base/logging.h:38:21: note: expanded from macro 'S2_CHECK_LT'
   38 | #define S2_CHECK_LT CHECK_LT
      |                     ^
/usr/include/absl/log/check.h:124:3: note: expanded from macro 'CHECK_LT'
  124 |   ABSL_LOG_INTERNAL_CHECK_LT_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:55:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LT_IMPL'
   55 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LT, <, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:131:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:38:21: note: expanded from macro 'S2_CHECK_LT'
   38 | #define S2_CHECK_LT CHECK_LT
      |                     ^
/usr/include/absl/log/check.h:124:3: note: expanded from macro 'CHECK_LT'
  124 |   ABSL_LOG_INTERNAL_CHECK_LT_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:55:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LT_IMPL'
   55 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LT, <, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:145:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  145 |     S2_CHECK_LT(array_index, array_size());
      |     ^
../src/s2/base/logging.h:38:21: note: expanded from macro 'S2_CHECK_LT'
   38 | #define S2_CHECK_LT CHECK_LT
      |                     ^
/usr/include/absl/log/check.h:124:3: note: expanded from macro 'CHECK_LT'
  124 |   ABSL_LOG_INTERNAL_CHECK_LT_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:55:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LT_IMPL'
   55 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LT, <, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:145:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:38:21: note: expanded from macro 'S2_CHECK_LT'
   38 | #define S2_CHECK_LT CHECK_LT
      |                     ^
/usr/include/absl/log/check.h:124:3: note: expanded from macro 'CHECK_LT'
  124 |   ABSL_LOG_INTERNAL_CHECK_LT_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:55:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LT_IMPL'
   55 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LT, <, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:385:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  385 |     S2_CHECK_EQ(bits(), other.bits());
      |     ^
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:385:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:394:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  394 |     S2_CHECK_EQ(bits(), other.bits());
      |     ^
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:394:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:766:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  766 |   S2_CHECK_EQ(bits(), other.bits());
      |   ^
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:766:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:889:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  889 |   S2_CHECK_LE(end, size_);
      |   ^
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:889:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:890:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  890 |   S2_CHECK_LE(start, end);
      |   ^
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:890:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:921:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  921 |   S2_CHECK_LE(limit, size_);
      |   ^
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:921:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:933:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  933 |   S2_CHECK_LE(limit, size_);
      |   ^
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shape_nesting_query.cc:26:
../src/s2/util/bitmap/bitmap.h:933:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:26:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shape_nesting_query.cc:17:
In file included from ../src/s2/s2shape_nesting_query.h:27:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
95 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shapeutil_build_polygon_boundaries.cc -o s2/s2shapeutil_build_polygon_boundaries.o
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:24:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_build_polygon_boundaries.cc:18:
In file included from ../src/s2/s2shapeutil_build_polygon_boundaries.h:23:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
101 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shapeutil_coding.cc -o s2/s2shapeutil_coding.o
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:42:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:42:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:42:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:42:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_coding.cc:18:
In file included from ../src/s2/s2shapeutil_coding.h:45:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shapeutil_contains_brute_force.cc -o s2/s2shapeutil_contains_brute_force.o
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:22:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:22:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:23:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_contains_brute_force.cc:18:
In file included from ../src/s2/s2shapeutil_contains_brute_force.h:21:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
99 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shapeutil_conversion.cc -o s2/s2shapeutil_conversion.o
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:28:
In file included from ../src/s2/s2polygon.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_conversion.cc:18:
In file included from ../src/s2/s2shapeutil_conversion.h:27:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
103 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shapeutil_edge_iterator.cc -o s2/s2shapeutil_edge_iterator.o
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:22:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_edge_iterator.cc:16:
In file included from ../src/s2/s2shapeutil_edge_iterator.h:23:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
77 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shapeutil_get_reference_point.cc -o s2/s2shapeutil_get_reference_point.o
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:25:
In file included from ../src/s2/s2coder.h:24:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/s2shape.h:67:55: note: in instantiation of template class 'Vector2<double>' requested here
   67 |     Edge(const S2Point& _v0, const S2Point& _v1) : v0(_v0), v1(_v1) {}
      |                                                       ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:21:
In file included from ../src/s2/s2shape.h:26:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_get_reference_point.cc:18:
In file included from ../src/s2/s2shapeutil_get_reference_point.h:22:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
77 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2shapeutil_visit_crossing_edge_pairs.cc -o s2/s2shapeutil_visit_crossing_edge_pairs.o
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:31:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:31:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:31:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:31:
In file included from ../src/s2/s2padded_cell.h:23:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:33:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:33:
In file included from ../src/s2/s2shape.h:27:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:66:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_range_iterator.h:38:33: note: in instantiation of template type alias 'ImplementedBy' requested here
   38 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
../src/s2/s2shape_index.h:308:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
  308 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2ShapeIndex*>;
      |   ^
../src/s2/s2cell_range_iterator.h:108:49: note: in instantiation of template type alias 'ImplementedBy' requested here
  108 |           typename std::enable_if<S2ShapeIndex::ImplementedBy<IndexType>{},
      |                                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_range_iterator.h:119:51: note: in instantiation of template type alias 'ImplementedBy' requested here
  119 |           typename std::enable_if<S2CellIterator::ImplementedBy<Iterator>{},
      |                                                   ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:27:
../src/s2/s2cell_range_iterator.h:122:36: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
  122 |   return S2CellRangeIterator<absl::decay_t<Iterator>>(
      |                                    ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_range_iterator.h:38:33: note: in instantiation of template type alias 'ImplementedBy' requested here
   38 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
s2/s2shapeutil_visit_crossing_edge_pairs.cc:287:15: note: in instantiation of template class 'S2CellRangeIterator<S2ShapeIndex::Iterator>' requested here
  287 |   S2_DCHECK(ai->id().contains(bi->id()));
      |               ^
../src/s2/base/logging.h:43:19: note: expanded from macro 'S2_DCHECK'
   43 | #define S2_DCHECK DCHECK
      |                   ^
/usr/include/absl/log/check.h:89:58: note: expanded from macro 'DCHECK'
   89 | #define DCHECK(condition) ABSL_LOG_INTERNAL_DCHECK_IMPL((condition), #condition)
      |                                                          ^
/usr/include/absl/log/internal/check_impl.h:44:41: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_IMPL'
   44 |   ABSL_LOG_INTERNAL_CHECK_IMPL(true || (condition), "true")
      |                                         ^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/usr/include/absl/base/optimization.h:190:59: note: expanded from macro 'ABSL_PREDICT_FALSE'
  190 | #define ABSL_PREDICT_FALSE(x) (__builtin_expect(false || (x), false))
      |                                                           ^
/usr/include/absl/log/internal/conditions.h:180:40: note: expanded from macro 'ABSL_LOG_INTERNAL_CONDITION_FATAL'
  180 |   ABSL_LOG_INTERNAL_##type##_CONDITION(condition)
      |                                        ^
/usr/include/absl/log/internal/conditions.h:68:7: note: expanded from macro 'ABSL_LOG_INTERNAL_STATELESS_CONDITION'
   68 |     !(condition) ? (void)0 : ::absl::log_internal::Voidify() &&
      |       ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
../src/s2/s2shape_index.h:308:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
  308 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2ShapeIndex*>;
      |   ^
../src/s2/s2cell_range_iterator.h:108:49: note: in instantiation of template type alias 'ImplementedBy' requested here
  108 |           typename std::enable_if<S2ShapeIndex::ImplementedBy<IndexType>{},
      |                                                 ^
../src/s2/s2cell_range_iterator.h:110:51: note: while substituting prior template arguments into non-type template parameter [with IndexType = S2ShapeIndex]
  110 | S2CellRangeIterator<typename IndexType::Iterator> MakeS2CellRangeIterator(
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~
  111 |     const IndexType* index) {
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~
  112 |   using Iterator = typename IndexType::Iterator;
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  113 |   return S2CellRangeIterator<Iterator>(Iterator(index, S2ShapeIndex::BEGIN));
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  114 | }
      | ~
s2/s2shapeutil_visit_crossing_edge_pairs.cc:337:13: note: while substituting deduced template arguments into function template 'MakeS2CellRangeIterator' [with IndexType = S2ShapeIndex, $1 = (no value)]
  337 |   auto ai = MakeS2CellRangeIterator(&a_index);
      |             ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:34:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2shapeutil_visit_crossing_edge_pairs.cc:18:
In file included from ../src/s2/s2shapeutil_visit_crossing_edge_pairs.h:23:
In file included from ../src/s2/s2crossing_edge_query.h:29:
In file included from ../src/s2/r2.h:22:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2text_format.cc -o s2/s2text_format.o
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:357:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector2, double, 2>' requested here
  357 | class Vector2 : public util::math::internal_vector::BasicVector<Vector2, T, 2> {
      |                        ^
../src/s2/r1interval.h:222:13: note: in instantiation of template class 'Vector2<double>' requested here
  222 |   Vector2_d bounds_;
      |             ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector3<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/r1interval.h:37:7: note: in instantiation of template class 'Vector4<double>' requested here
   37 | class R1Interval {
      |       ^
../src/s2/r1interval.h:182:28: note: in implicit copy constructor for 'R1Interval' first required here
  182 |     if (is_empty()) return *this;
      |                            ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:41:
In file included from ../src/s2/s2cell_id.h:43:
In file included from ../src/s2/s1angle.h:28:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:362:16: warning: 'is_trivially_default_constructible' is deprecated [-Wdeprecated-declarations]
  362 |         !absl::is_trivially_default_constructible<value_type>::value) {
      |                ^
/usr/include/absl/meta/type_traits.h:180:42: note: 'is_trivially_default_constructible' has been explicitly marked deprecated here
  180 | using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                          ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:523:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  523 |   static_assert(absl::is_trivially_copy_constructible<value_type>::value &&
      |                       ^
../src/s2/util/gtl/compact_array.h:543:30: note: in instantiation of template class 'gtl::compact_array_base<S2ClippedShape>' requested here
  543 | class compact_array : public compact_array_base<T, A> {
      |                              ^
../src/s2/s2shape_index.h:192:21: note: in instantiation of template class 'gtl::compact_array<S2ClippedShape>' requested here
  192 |   S2ClippedShapeSet shapes_;
      |                     ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:524:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  524 |                 absl::is_trivially_copy_assignable<value_type>::value &&
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:42:
In file included from ../src/s2/s2memory_tracker.h:29:
../src/s2/util/gtl/compact_array.h:525:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  525 |                 absl::is_trivially_destructible<value_type>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, long double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:63:26: note: in instantiation of template class 'Vector3<long double>' requested here
   63 | inline static Vector3_ld ToLD(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2predicates_internal.h:71:26: note: in instantiation of template class 'Vector3<ExactFloat>' requested here
   71 | inline static Vector3_xf ToExact(const S2Point& x) {
      |                          ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2coords.h:373:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  373 |   S2_DCHECK_GT(p.DotProd(GetNorm(face)), 0);
      |                  ^
../src/s2/base/logging.h:48:22: note: expanded from macro 'S2_DCHECK_GT'
   48 | #define S2_DCHECK_GT DCHECK_GT
      |                      ^
/usr/include/absl/log/check.h:152:37: note: expanded from macro 'DCHECK_GT'
  152 |   ABSL_LOG_INTERNAL_DCHECK_GT_IMPL((val1), #val1, (val2), #val2)
      |                                     ^
/usr/include/absl/log/internal/check_impl.h:97:32: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_GT_IMPL'
   97 |   ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
      |                                ^
/usr/include/absl/log/internal/check_op.h:63:27: note: expanded from macro 'ABSL_LOG_INTERNAL_DCHECK_NOP'
   63 |   while (false && ((void)(x), (void)(y), 0)) \
      |                           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:447:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  447 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2shape_index.h:457:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2ShapeIndex::Iterator>' requested here
  457 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:341:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  341 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/mutable_s2shape_index.h:345:14: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<MutableS2ShapeIndex::Iterator>' requested here
  345 |       return LocateImpl(*this, target);
      |              ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:151:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  151 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:492:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  492 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:46:
In file included from ../src/s2/s2shape_index.h:61:
../src/s2/s2cell_iterator.h:89:3: warning: 'decay_t' is deprecated [-Wdeprecated-declarations]
   89 |   using ImplementedBy = std::is_convertible<absl::decay_t<T>*, S2CellIterator*>;
      |   ^
../src/s2/s2cell_iterator.h:174:33: note: in instantiation of template type alias 'ImplementedBy' requested here
  174 |   static_assert(S2CellIterator::ImplementedBy<Iterator>{},
      |                                 ^
../src/s2/s2cell_union.h:496:10: note: in instantiation of function template specialization 'S2CellIterator::LocateImpl<S2CellUnion::Iterator>' requested here
  496 |   return LocateImpl(*this, target);
      |          ^
/usr/include/absl/meta/type_traits.h:151:15: note: 'decay_t' has been explicitly marked deprecated here
  151 | using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
      |               ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:136:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+=' requested here
  136 |   D operator+(const D& b) const { return D(AsD()) += b; }
      |                                                   ^
../src/s2/s2latlng.h:261:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator+' requested here
  261 |   return S2LatLng(a.coords_ + b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/util/math/vector.h:137:51: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-=' requested here
  137 |   D operator-(const D& b) const { return D(AsD()) -= b; }
      |                                                   ^
../src/s2/s2latlng.h:265:29: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector2, double, 2>::operator-' requested here
  265 |   return S2LatLng(a.coords_ - b.coords_);
      |                             ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector2<double>, Is = <0, 1>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::Generate<Vector2<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector2<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector2, double, 2>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2latlng.h:269:21: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector2, double, 2UL>' requested here
  269 |   return S2LatLng(m * a.coords_);
      |                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<long double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Generate<Vector3<long double>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:64:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, long double, 3>::Cast<double>' requested here
   64 |   return Vector3_ld::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<ExactFloat>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:148:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:148:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Generate<Vector3<ExactFloat>, (lambda at ../src/s2/util/math/vector.h:148:21), const Vector3<double> &>' requested here
  148 |     return Generate([](const T2& x) { return static_cast<T>(x); }, b);
      |            ^
../src/s2/s2predicates_internal.h:72:22: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, ExactFloat, 3>::Cast<double>' requested here
   72 |   return Vector3_xf::Cast(x);
      |                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2text_format.cc:16:
In file included from ../src/s2/s2text_format.h:34:
In file included from ../src/s2/mutable_s2shape_index.h:39:
In file included from ../src/s2/r1interval.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:267:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:267:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:267:21), const Vector3<double> &>' requested here
  267 |     return Generate([k](const T& x) { return k * x; }, AsD());
      |            ^
../src/s2/util/math/vector.h:343:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulScalarInternal<double>' requested here
  343 |   return a.MulScalarInternal(k);
      |            ^
../src/s2/s2edge_distances.h:272:18: note: in instantiation of function template specialization 'util::math::internal_vector::operator*<double, Vector3, double, 3UL>' requested here
  272 |   return (cos(r) * origin + sin(r) * dir).Normalize();
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
105 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2wedge_relations.cc -o s2/s2wedge_relations.o
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:25:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, int, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/util/math/vector.h:512:16: note: in instantiation of template class 'Vector3<int>' requested here
  512 |   Vector3<int> ComponentOrder() const {
      |                ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:427:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector3, double, 3>' requested here
  427 | class Vector3 : public util::math::internal_vector::BasicVector<Vector3, T, 3> {
      |                        ^
../src/s2/s2point.h:36:24: note: in instantiation of template class 'Vector3<double>' requested here
   36 | class S2Point : public Vector3_d {
      |                        ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:62:34: warning: 'make_index_sequence' is deprecated: Use std::make_index_sequence instead. [-Wdeprecated-declarations]
   62 |   using IdxSeqN = typename absl::make_index_sequence<N>;
      |                                  ^
../src/s2/util/math/vector.h:526:24: note: in instantiation of template class 'util::math::internal_vector::BasicVector<Vector4, double, 4>' requested here
  526 | class Vector4 : public util::math::internal_vector::BasicVector<Vector4, T, 4> {
      |                        ^
../src/s2/s2point.h:72:36: note: in instantiation of template class 'Vector4<double>' requested here
   72 |   S2Point(const Base& base) : Base(base) {}
      |                                    ^
/usr/include/absl/utility/utility.h:113:7: note: 'make_index_sequence' has been explicitly marked deprecated here
  113 |     [[deprecated("Use std::make_index_sequence instead.")]] =
      |       ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:21:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2wedge_relations.cc:21:
In file included from ../src/s2/s2predicates.h:57:
In file included from ../src/s2/s1chord_angle.h:31:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:317:46: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  317 |   static void PlusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                              ^
../src/s2/util/math/vector.h:117:5: note: while substituting deduced template arguments into function template 'PlusEq' [with Is = <0, 1, 2>]
  117 |     PlusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:112:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator+=' requested here
  112 |     Base::operator+=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:322:47: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  322 |   static void MinusEq(T* a, const T* b, absl::index_sequence<Is...>) {
      |                                               ^
../src/s2/util/math/vector.h:122:5: note: while substituting deduced template arguments into function template 'MinusEq' [with Is = <0, 1, 2>]
  122 |     MinusEq(static_cast<D&>(*this).Data(), b.Data(), IdxSeqN{});
      |     ^
../src/s2/s2point.h:116:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator-=' requested here
  116 |     Base::operator-=(b);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:327:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  327 |   static void MulEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:127:5: note: while substituting deduced template arguments into function template 'MulEq' [with Is = <0, 1, 2>]
  127 |     MulEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:120:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator*=' requested here
  120 |     Base::operator*=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:332:38: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  332 |   static void DivEq(T* a, T b, absl::index_sequence<Is...>) {
      |                                      ^
../src/s2/util/math/vector.h:132:5: note: while substituting deduced template arguments into function template 'DivEq' [with Is = <0, 1, 2>]
  132 |     DivEq(static_cast<D&>(*this).Data(), std::move(k), IdxSeqN{});
      |     ^
../src/s2/s2point.h:124:11: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::operator/=' requested here
  124 |     Base::operator/=(v);
      |           ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:142:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:142:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:142:21), const Vector3<double> &>' requested here
  142 |     return Generate([](const T& x) { return -x; }, a);
      |            ^
../src/s2/s2point.h:134:12: note: in instantiation of member function 'util::math::internal_vector::operator-' requested here
  134 |     return -static_cast<const Base&>(pnt);
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:153:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:153:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:153:21), const Vector3<double> &, const Vector3<double> &>' requested here
  153 |     return Generate([](const T& x, const T& y) { return x * y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:143:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::MulComponents' requested here
  143 |     return Base::MulComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:157:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:157:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:157:21), const Vector3<double> &, const Vector3<double> &>' requested here
  157 |     return Generate([](const T& x, const T& y) { return x / y; }, AsD(), b);
      |            ^
../src/s2/s2point.h:146:18: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DivComponents' requested here
  146 |     return Base::DivComponents(b);
      |                  ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:162:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:162:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:162:21), const Vector3<double> &, const Vector3<double> &>' requested here
  162 |     return Generate([](const T& x, const T& y) { return std::max(x, y); }, a,
      |            ^
../src/s2/s2point.h:150:12: note: in instantiation of member function 'util::math::internal_vector::Max' requested here
  150 |     return Max(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:168:21) &>::type, As = <const double, const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:168:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:168:21), const Vector3<double> &, const Vector3<double> &>' requested here
  168 |     return Generate([](const T& x, const T& y) { return std::min(x, y); }, a,
      |            ^
../src/s2/s2point.h:154:12: note: in instantiation of member function 'util::math::internal_vector::Min' requested here
  154 |     return Min(static_cast<const Base&>(a), static_cast<const Base&>(b));
      |            ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:199:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:198:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:199:9), const Vector3<double> &>' requested here
  198 |     return Generate(
      |            ^
../src/s2/s2point.h:158:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Sqrt' requested here
  158 |   S2Point Sqrt() const { return Base::Sqrt(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:209:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:208:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:209:9), const Vector3<double> &>' requested here
  208 |     return Generate(
      |            ^
../src/s2/s2point.h:159:40: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Floor' requested here
  159 |   S2Point Floor() const { return Base::Floor(); }
      |                                        ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:219:9) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:218:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:219:9), const Vector3<double> &>' requested here
  218 |     return Generate(
      |            ^
../src/s2/s2point.h:160:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Ceil' requested here
  160 |   S2Point Ceil() const { return Base::Ceil(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:229:21) &>::type, As = <const double>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:229:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:229:21), const Vector3<double> &>' requested here
  229 |     return Generate([](const T& x) { return rint(x); }, AsD());
      |            ^
../src/s2/s2point.h:161:41: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::FRound' requested here
  161 |   S2Point FRound() const { return Base::FRound(); }
      |                                         ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting explicitly-specified template arguments into function template 'GenerateEach' 
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:70:31: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
   70 |   static R GenerateEach(absl::index_sequence<Is...>, F f, As*... as) {
      |                               ^
../src/s2/util/math/vector.h:79:12: note: while substituting deduced template arguments into function template 'GenerateEach' [with R = Vector3<double>, Is = <0, 1, 2>, F = typename std::remove_reference<(lambda at ../src/s2/util/math/vector.h:250:21) &>::type, As = <>]
   79 |     return GenerateEach<R>(IdxSeqN(), std::move(f),
      |            ^
../src/s2/util/math/vector.h:250:12: note: in instantiation of function template specialization 'util::math::internal_vector::BasicVector<Vector3, double, 3>::Generate<Vector3<double>, (lambda at ../src/s2/util/math/vector.h:250:21)>' requested here
  250 |     return Generate([] { return std::numeric_limits<T>::quiet_NaN(); });
      |            ^
../src/s2/s2point.h:162:39: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::NaN' requested here
  162 |   static S2Point NaN() { return Base::NaN(); }
      |                                       ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
In file included from s2/s2wedge_relations.cc:18:
In file included from ../src/s2/s2wedge_relations.h:24:
In file included from ../src/s2/s2point.h:29:
../src/s2/util/math/vector.h:311:53: warning: 'index_sequence' is deprecated: Use std::index_sequence instead. [-Wdeprecated-declarations]
  311 |   static T Dot(T sum, const T* a, const T* b, absl::index_sequence<Is...>) {
      |                                                     ^
../src/s2/util/math/vector.h:173:12: note: while substituting deduced template arguments into function template 'Dot' [with Is = <0, 1, 2>]
  173 |     return Dot(static_cast<T>(0), static_cast<const D&>(*this).Data(), b.Data(),
      |            ^
../src/s2/s2predicates.h:397:26: note: in instantiation of member function 'util::math::internal_vector::BasicVector<Vector3, double, 3>::DotProd' requested here
  397 |   double det = a_cross_b.DotProd(c);
      |                          ^
/usr/include/absl/utility/utility.h:91:24: note: 'index_sequence' has been explicitly marked deprecated here
   91 | using index_sequence [[deprecated("Use std::index_sequence instead.")]] =
      |                        ^
59 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/s2winding_operation.cc -o s2/s2winding_operation.o
In file included from s2/s2winding_operation.cc:19:
In file included from ../src/s2/s2winding_operation.h:23:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  276 |     S2_CHECK_NE(det, VType(0)) << " Can't inverse. Determinant = 0.";
      |     ^
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
In file included from s2/s2winding_operation.cc:19:
In file included from ../src/s2/s2winding_operation.h:23:
In file included from ../src/s2/s2builder.h:36:
In file included from ../src/s2/mutable_s2shape_index.h:44:
In file included from ../src/s2/s2pointutil.h:27:
../src/s2/util/math/matrix3x3.h:276:5: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:37:21: note: expanded from macro 'S2_CHECK_NE'
   37 | #define S2_CHECK_NE CHECK_NE
      |                     ^
/usr/include/absl/log/check.h:120:3: note: expanded from macro 'CHECK_NE'
  120 |   ABSL_LOG_INTERNAL_CHECK_NE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:51:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_NE_IMPL'
   51 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
2 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/util/bits/bit-interleave.cc -o s2/util/bits/bit-interleave.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/util/coding/coder.cc -o s2/util/coding/coder.o
In file included from s2/util/coding/coder.cc:19:
../src/s2/util/coding/coder.h:161:44: warning: 'exchange<char *, char *>' is deprecated [-Wdeprecated-declarations]
  161 |     char* skip(ptrdiff_t N) { return absl::exchange(p, p + N); }
      |                                            ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<char *, char *>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/util/coding/coder.cc:19:
../src/s2/util/coding/coder.h:493:23: warning: 'is_trivially_copy_constructible' is deprecated [-Wdeprecated-declarations]
  493 |   static_assert(absl::is_trivially_copy_constructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:176:39: note: 'is_trivially_copy_constructible' has been explicitly marked deprecated here
  176 | using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
      |                                       ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/util/coding/coder.cc:19:
../src/s2/util/coding/coder.h:495:23: warning: 'is_trivially_copy_assignable' is deprecated [-Wdeprecated-declarations]
  495 |   static_assert(absl::is_trivially_copy_assignable<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:172:36: note: 'is_trivially_copy_assignable' has been explicitly marked deprecated here
  172 | using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
      |                                    ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from s2/util/coding/coder.cc:19:
../src/s2/util/coding/coder.h:497:23: warning: 'is_trivially_destructible' is deprecated [-Wdeprecated-declarations]
  497 |   static_assert(absl::is_trivially_destructible<Decoder>::value,
      |                       ^
/usr/include/absl/meta/type_traits.h:184:33: note: 'is_trivially_destructible' has been explicitly marked deprecated here
  184 | using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
      |                                 ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:35:18: warning: 'exchange<unsigned char *, std::nullptr_t>' is deprecated [-Wdeprecated-declarations]
   35 |     : buf_(absl::exchange(other.buf_, nullptr)),
      |                  ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<unsigned char *, std::nullptr_t>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:36:20: warning: 'exchange<unsigned char *, std::nullptr_t>' is deprecated [-Wdeprecated-declarations]
   36 |       limit_(absl::exchange(other.limit_, nullptr)),
      |                    ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<unsigned char *, std::nullptr_t>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:37:32: warning: 'exchange<unsigned char *, std::nullptr_t>' is deprecated [-Wdeprecated-declarations]
   37 |       underlying_buffer_(absl::exchange(other.underlying_buffer_, nullptr)),
      |                                ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<unsigned char *, std::nullptr_t>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:38:19: warning: 'exchange<unsigned char *, std::nullptr_t>' is deprecated [-Wdeprecated-declarations]
   38 |       orig_(absl::exchange(other.orig_, nullptr)) {}
      |                   ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<unsigned char *, std::nullptr_t>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:43:16: warning: 'exchange<unsigned char *, std::nullptr_t>' is deprecated [-Wdeprecated-declarations]
   43 |   buf_ = absl::exchange(other.buf_, nullptr);
      |                ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<unsigned char *, std::nullptr_t>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:44:18: warning: 'exchange<unsigned char *, std::nullptr_t>' is deprecated [-Wdeprecated-declarations]
   44 |   limit_ = absl::exchange(other.limit_, nullptr);
      |                  ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<unsigned char *, std::nullptr_t>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:45:30: warning: 'exchange<unsigned char *, std::nullptr_t>' is deprecated [-Wdeprecated-declarations]
   45 |   underlying_buffer_ = absl::exchange(other.underlying_buffer_, nullptr);
      |                              ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<unsigned char *, std::nullptr_t>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:46:17: warning: 'exchange<unsigned char *, std::nullptr_t>' is deprecated [-Wdeprecated-declarations]
   46 |   orig_ = absl::exchange(other.orig_, nullptr);
      |                 ^
/usr/include/absl/utility/utility.h:49:1: note: 'exchange<unsigned char *, std::nullptr_t>' has been explicitly marked deprecated here
   49 | ABSL_DEPRECATE_AND_INLINE()
      | ^
/usr/include/absl/base/macros.h:245:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  245 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
s2/util/coding/coder.cc:51:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
   51 |   S2_CHECK_LE(buf_, limit_);  // Catch the buffer overflow.
      |   ^
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
s2/util/coding/coder.cc:51:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:39:21: note: expanded from macro 'S2_CHECK_LE'
   39 | #define S2_CHECK_LE CHECK_LE
      |                     ^
/usr/include/absl/log/check.h:122:3: note: expanded from macro 'CHECK_LE'
  122 |   ABSL_LOG_INTERNAL_CHECK_LE_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:53:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_LE_IMPL'
   53 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
14 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/util/coding/varint.cc -o s2/util/coding/varint.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/util/math/exactfloat/exactfloat.cc -o s2/util/math/exactfloat/exactfloat.o
s2/util/math/exactfloat/exactfloat.cc:144:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  144 |   S2_CHECK_EQ(BN_bn2lebinpad(bn, reinterpret_cast<unsigned char*>(&r),
      |   ^
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
s2/util/math/exactfloat/exactfloat.cc:144:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
s2/util/math/exactfloat/exactfloat.cc:161:3: warning: type nullability specifier '_Nullable' is a Clang extension [-Wnullability-extension]
  161 |   S2_CHECK_EQ(BN_bn2lebinpad(bn, bytes.data(), bytes.size()), bytes.size());
      |   ^
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:68:22: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   68 |   while (const char* absl_nullable absl_log_internal_check_op_result           \
      |                      ^
/usr/include/absl/base/nullability.h:257:23: note: expanded from macro 'absl_nullable'
  257 | #define absl_nullable _Nullable
      |                       ^
s2/util/math/exactfloat/exactfloat.cc:161:3: warning: type nullability specifier '_Nonnull' is a Clang extension [-Wnullability-extension]
../src/s2/base/logging.h:36:21: note: expanded from macro 'S2_CHECK_EQ'
   36 | #define S2_CHECK_EQ CHECK_EQ
      |                     ^
/usr/include/absl/log/check.h:118:3: note: expanded from macro 'CHECK_EQ'
  118 |   ABSL_LOG_INTERNAL_CHECK_EQ_IMPL((val1), #val1, (val2), #val2)
      |   ^
/usr/include/absl/log/internal/check_impl.h:49:3: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_EQ_IMPL'
   49 |   ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
      |   ^
/usr/include/absl/log/internal/check_op.h:75:61: note: expanded from macro 'ABSL_LOG_INTERNAL_CHECK_OP'
   75 |   ABSL_LOG_INTERNAL_CHECK(::absl::implicit_cast<const char* absl_nonnull>(     \
      |                                                             ^
/usr/include/absl/base/nullability.h:241:22: note: expanded from macro 'absl_nonnull'
  241 | #define absl_nonnull _Nonnull
      |                      ^
4 warnings generated.
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/util/math/mathutil.cc -o s2/util/math/mathutil.o
clang++-22 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG -I../src -DSTRICT_R_HEADERS -DRCPP_NO_MASK_RF_ERROR -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/Rcpp/include' -I'/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/wk/include' -I/usr/local/include -D_FORTIFY_SOURCE=3  -pthread -fpic  -g -O3 -Wall -pedantic   -c s2/util/units/length-units.cc -o s2/util/units/length-units.o
ar rcs s2/libs2static.a s2/encoded_s2cell_id_vector.o s2/encoded_s2point_vector.o s2/encoded_s2shape_index.o s2/encoded_string_vector.o s2/id_set_lexicon.o s2/mutable_s2shape_index.o s2/r2rect.o s2/s1angle.o s2/s1chord_angle.o s2/s1interval.o s2/s2boolean_operation.o s2/s2buffer_operation.o s2/s2builder_graph.o s2/s2builder.o s2/s2builderutil_closed_set_normalizer.o s2/s2builderutil_find_polygon_degeneracies.o s2/s2builderutil_get_snapped_winding_delta.o s2/s2builderutil_lax_polygon_layer.o s2/s2builderutil_lax_polyline_layer.o s2/s2builderutil_s2point_vector_layer.o s2/s2builderutil_s2polygon_layer.o s2/s2builderutil_s2polyline_layer.o s2/s2builderutil_s2polyline_vector_layer.o s2/s2builderutil_snap_functions.o s2/s2cap.o s2/s2cell_id.o s2/s2cell_index.o s2/s2cell_union.o s2/s2cell.o s2/s2centroids.o s2/s2closest_cell_query.o s2/s2closest_edge_query.o s2/s2closest_point_query.o s2/s2contains_vertex_query.o s2/s2convex_hull_query.o s2/s2coords.o s2/s2crossing_edge_query.o s2/s2debug.o s2/s2earth.o s2/s2edge_clipping.o s2/s2edge_crosser.o s2/s2edge_crossings.o s2/s2edge_distances.o s2/s2edge_tessellator.o s2/s2error.o s2/s2furthest_edge_query.o s2/s2hausdorff_distance_query.o s2/s2latlng_rect_bounder.o s2/s2latlng_rect.o s2/s2latlng.o s2/s2lax_loop_shape.o s2/s2lax_polygon_shape.o s2/s2lax_polyline_shape.o s2/s2loop_measures.o s2/s2loop.o s2/s2max_distance_targets.o s2/s2measures.o s2/s2memory_tracker.o s2/s2metrics.o s2/s2min_distance_targets.o s2/s2padded_cell.o s2/s2point_compression.o s2/s2point_region.o s2/s2pointutil.o s2/s2polygon.o s2/s2polyline_alignment.o s2/s2polyline_measures.o s2/s2polyline_simplifier.o s2/s2polyline.o s2/s2predicates.o s2/s2projections.o s2/s2r2rect.o s2/s2region_coverer.o s2/s2region_intersection.o s2/s2region_term_indexer.o s2/s2region_union.o s2/s2region.o s2/s2shape_index_buffered_region.o s2/s2shape_index_measures.o s2/s2shape_index.o s2/s2shape_measures.o s2/s2shape_nesting_query.o s2/s2shapeutil_build_polygon_boundaries.o s2/s2shapeutil_coding.o s2/s2shapeutil_contains_brute_force.o s2/s2shapeutil_conversion.o s2/s2shapeutil_edge_iterator.o s2/s2shapeutil_get_reference_point.o s2/s2shapeutil_visit_crossing_edge_pairs.o s2/s2text_format.o s2/s2wedge_relations.o s2/s2winding_operation.o s2/util/bits/bit-interleave.o s2/util/coding/coder.o s2/util/coding/varint.o s2/util/math/exactfloat/exactfloat.o s2/util/math/mathutil.o s2/util/units/length-units.o
clang++-22 -std=gnu++17 -shared -L/home/hornik/tmp/R.check/r-devel-clang/Work/build/lib -Wl,-O1 -o s2.so cpp-compat.o s2-altrep.o s2-accessors.o s2-bounds.o s2-cell.o s2-cell-union.o s2-constructors-formatters.o s2-predicates.o s2-transformers.o init.o util.o RcppExports.o s2-geography.o s2-lnglat.o s2-matrix.o wk-impl.o s2geography/accessors-geog.o s2geography/accessors.o s2geography/build.o s2geography/coverings.o s2geography/distance.o s2geography/geography.o s2geography/linear-referencing.o s2geography/predicates.o -Ls2 -ls2static -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_reflection -labsl_flags_private_handle_accessor -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal -labsl_flags_config -labsl_flags_program_name -labsl_raw_hash_set -labsl_hashtablez_sampler -labsl_log_internal_check_op -labsl_log_internal_conditions -labsl_log_internal_message -labsl_examine_stack -labsl_log_internal_format -labsl_log_internal_nullguard -labsl_log_internal_structured_proto -labsl_log_internal_log_sink_set -labsl_log_internal_globals -labsl_log_globals -labsl_vlog_config_internal -labsl_log_internal_fnmatch -labsl_log_sink -labsl_log_entry -labsl_log_internal_proto -labsl_status -labsl_cord -labsl_cordz_info -labsl_cord_internal -labsl_hash -labsl_city -labsl_cordz_functions -labsl_exponential_biased -labsl_cordz_handle -labsl_synchronization -labsl_graphcycles_internal -labsl_kernel_timeout_internal -labsl_tracing_internal -labsl_time -labsl_civil_time -labsl_time_zone -labsl_crc_cord_state -labsl_crc32c -labsl_crc_internal -labsl_crc_cpu_detect -labsl_leak_check -labsl_stacktrace -labsl_str_format_internal -labsl_strerror -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal -labsl_demangle_rust -labsl_decode_rust_punycode -labsl_utf8_for_code_point -labsl_malloc_internal -labsl_strings -labsl_strings_internal -labsl_int128 -labsl_base -Wl,--push-state,--as-needed -latomic -Wl,--pop-state -lrt -labsl_spinlock_wait -labsl_source_location -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity -lssl -lcrypto -L/home/hornik/tmp/R.check/r-devel-clang/Work/build/lib -lR
make[1]: Leaving directory '/home/hornik/tmp/scratch/RtmpSdvOE2/R.INSTALL11287025da896e/s2/src'
make[1]: Entering directory '/home/hornik/tmp/scratch/RtmpSdvOE2/R.INSTALL11287025da896e/s2/src'
make[1]: Leaving directory '/home/hornik/tmp/scratch/RtmpSdvOE2/R.INSTALL11287025da896e/s2/src'
installing to /home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/00LOCK-s2/00new/s2/libs
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
*** copying figures
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (s2)